from watchtower.setting_files.const import BASE_DIR

# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    },
    # 'default': {
    #     # 重写 mysql 连接库实现 mysql 连接池功能
    #     'ENGINE': 'motherbox.databases.mysql_remastered',
    #     'NAME': 'watchtower',
    #     'USER': 'Kal-El',
    #     'PASSWORD': 'Smallville',
    #     'HOST': '127.0.0.1',
    #     'PORT': '3306',
    #     # 数据库连接池大小，mysql 总连接数大小为：连接池大小 * 服务进程数, 默认 5 个
    #     'DB_POOL_SIZE': 3,
    # }
}

# CACHE相关配置
# redis连接的工厂方法
# DJANGO_REDIS_CONNECTION_FACTORY = None

CACHES = {
    "default": {
        "BACKEND": "oracle.service.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379",
        "OPTIONS": {
            # "PASSWORD": "password",
            "CONNECTION_POOL_KWARGS": {"max_connections": 100},
            # 高速缓存允许的最大条目数，超出这个数则旧值将被删除，默认300
            # "MAX_ENTRIES": 300,

            # 当达到 MAX_ENTRIES 值的时候，被删除的条目比率。
            # 该比率可以理解为 1/CULL_FREQUENCY，所以设置 CULL_FREQUENCY 为 2 会在达到 MAX_ENTRIES 值时会删去一半的缓存。
            # 这个参数应该是整数，默认为 3。把 CULL_FREQUENCY的值设置为 0 意味着当达到 MAX_ENTRIES 值时，缓存将被清空。
            # "CULL_FREQUENCY": 3,

            # 序列化存储值的方法
            # "SERIALIZER": None,
            # 压缩存储值的方法
            # “COMPRESSOR": None,
            # 是否真正关闭所有连接
            # "CLOSE_CONNECTION": False,

        },
        # "TIMEOUT": 300,
        # 缓存键值前缀，默认为''
        "KEY_PREFIX": "watchtower",
        # 缓存版本信息，默认为1
        # "VERSION": 1,
        # 缓存键值格式化的方法，字符串类型，会通过import_string进行导入
        # 默认使用django自带格式化方法 {KEY_PREFIX}:{VERSION}:{CACHE_KEY}
        # "KEY_FUNCTION": None,
        # 还原key的方法
        # "REVERSE_KEY_FUNCTION": None
    }
}

# 使用CACHE存储SESSION
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'default'
# 每次访问更新SESSION的过期时间
SESSION_SAVE_EVERY_REQUEST = True
# SESSION_COOKIE_AGE = 21600
# SESSION_EXPIRE_AT_BROWSER_CLOSE = True
